package com.wdd.libview

import android.app.Application
import androidx.appcompat.app.AppCompatDelegate
import com.blankj.utilcode.util.LogUtils
import com.fengchen.uistatus.UiStatusManager
import com.fengchen.uistatus.annotation.UiStatus
import com.scwang.smartrefresh.layout.SmartRefreshLayout
import com.scwang.smartrefresh.layout.constant.SpinnerStyle
import com.scwang.smartrefresh.layout.footer.ClassicsFooter
import com.scwang.smartrefresh.layout.header.ClassicsHeader

/**
 *
 * @ProjectName:    OwnTool
 * @Package:        com.wdd.libview
 * @ClassName:      ViewManager
 * @Description:     初始化布局
 * @Author:         王丹丹
 * @CreateDate:     2019/12/18 13:43
 * @UpdateUser:     更新者
 * @UpdateDate:     2019/12/18 13:43
 * @UpdateRemark:   更新说明
 * @Version:        1.0
 */
class ViewManager {
    companion object {
        init {
            //启用矢量图兼容
            AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
            //设置全局默认配置（优先级最低，会被其他设置覆盖）
            SmartRefreshLayout.setDefaultRefreshInitializer { _, layout ->
                //全局设置（优先级最低）
                layout.setEnableAutoLoadMore(true)//是否监听列表惯性滚动到底部时触发加载事件
                layout.setEnableOverScrollDrag(false)//是否启用越界拖动
                layout.setEnableOverScrollBounce(true)//设置是否开启越界回弹功能
                layout.setEnableLoadMoreWhenContentNotFull(true)//在内容不满一页的时候，是否可以上拉加载更多
                layout.setEnableScrollContentWhenRefreshed(true)//是否在刷新成功之后滚动内容显示新数据
                layout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white)//主题\强调颜色资源Id
            }
            SmartRefreshLayout.setDefaultRefreshHeaderCreator { context, refreshLayout ->
                //全局设置主题颜色（优先级第二低，可以覆盖 DefaultRefreshInitializer 的配置，与下面的ClassicsHeader绑定）
                refreshLayout.setPrimaryColors(-0xbbbbbc, -0x1)
                ClassicsHeader(context).setSpinnerStyle(SpinnerStyle.FixedBehind)

            }
            SmartRefreshLayout.setDefaultRefreshFooterCreator { context, refreshLayout ->
                refreshLayout.setPrimaryColors(-0xbbbbbc, -0x1)
                ClassicsFooter(context).setSpinnerStyle(SpinnerStyle.FixedBehind)
            }
        }

        fun initView(application: Application) {
            UiStatusManager.getInstance()
                .addUiStatusConfig(UiStatus.LOADING, R.layout.view_layout_loading)//加载中
                .addUiStatusConfig(
                    UiStatus.EMPTY,
                    R.layout.view_layout_empty,
                    R.id.empty_ll,
                    null
                )//空布局
                .addUiStatusConfig(UiStatus.LOAD_ERROR, R.layout.view_layout_serve_error)//加载失败
                .addUiStatusConfig(UiStatus.NETWORK_ERROR, R.layout.view_layout_serve_error)//网络错误
                .setOnCompatRetryListener { uiStatus, target, controller, trigger ->
                    LogUtils.d("全局点击" + uiStatus)
                }.isAutoLoadingWithRetry = false
        }
    }
}